package com.prj.ufdm.cloud.ms.test.api;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;

import com.prj.ufdm.cloud.ms.core.util.CoreRestTemplateUtil;
import com.prj.ufdm.cloud.ms.test.constants.ServiceNameConstant;
import com.prj.ufdm.cloud.ms.test.model.demo.FirstDemo;

/**
 * DESC: 下订单Api(调用仓储与订单微服务) <br>
 * @author 胡义振
 * @date 2020年2月25日
 */
@RestController
@RequestMapping("/api/test/order")
public class OrderApi {

	@Autowired
	RestTemplate restTemplate;
	
	/**
	 * DESC: 调用 MS-WAREHOUSE 接口
	 * @auther 胡义振
	 * @date 2020年2月22日
	 * @param firstDemo
	 * @return 
	 * @return
	 */
	@RequestMapping("/getwarehouse")
	@ResponseBody
	public String getWarehouseDemo(FirstDemo firstDemo) throws Exception{
        String reqUrl = "http://"+ServiceNameConstant.SERVICE_MS_WAREHOUSE +"/api/warehouse/test";
        CoreRestTemplateUtil restTmpl = new CoreRestTemplateUtil(restTemplate);
        String reqResult = restTmpl.reqGetParam(reqUrl, null, null, null);
		return reqResult;
	}
	
	/**
	 * DESC: 调用 MS-ORDER 订单微服务创建订单接口（该接口调用了 MS-WAREHOUSE 仓储微服务接口）
	 * @auther 胡义振
	 * @date 2020年2月24日
	 * @param firstDemo
	 * @return 
	 * @return
	 */
	@RequestMapping("/placeorder")
	@ResponseBody
	public String placeOrder(FirstDemo firstDemo) {
        String url = "http://"+ServiceNameConstant.SERVICE_MS_ORDER+"/api/order/createorder";
		String result = restTemplate.getForObject(url, String.class);
		return result;
	}
	
}
